/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Ingresos;

import Controladores.JornadaJpaController;
import Controladores.PeriodoJpaController;
import Controladores.exceptions.IllegalOrphanException;
import Controladores.exceptions.NonexistentEntityException;
import Entidades.Jornada;
import Entidades.Periodo;
import Usuarios.conexion;
import java.util.Date;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Query;

/**
 *
 * @author a
 */
public class IPeriodo {
    public void periodo()
    {
        
    }
    
    public void guardar(String nombre,Date horaInicio,Date horaFin, Jornada idJornada)
    {
        Periodo periodo = new Periodo();
        EntityManagerFactory emf = conexion.getInstancia().getEMF();
        PeriodoJpaController controlador = new PeriodoJpaController(emf);
        Jornada jornada = new JornadaJpaController(emf).findJornada(idJornada.getIdJornada());
        periodo.setJornadaidJornada(jornada);
        periodo.setAnulado(false);
        periodo.setNombre(nombre);
        periodo.setHoraInicio(horaInicio);
        periodo.setHoraFin(horaFin);
        controlador.create(periodo);
    }
    
    public void modificar(Periodo periodo)
    {
        EntityManagerFactory emf = conexion.getInstancia().getEMF();
        PeriodoJpaController controlador = new PeriodoJpaController(emf);
        try {
            controlador.edit(periodo);
        } catch (IllegalOrphanException ex) {
            Logger.getLogger(IPeriodo.class.getName()).log(Level.SEVERE, null, ex);
        } catch (NonexistentEntityException ex) {
            Logger.getLogger(IPeriodo.class.getName()).log(Level.SEVERE, null, ex);
        } catch (Exception ex) {
            Logger.getLogger(IPeriodo.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    
    public Periodo buscarId(int id)
    {
        EntityManagerFactory emf = conexion.getInstancia().getEMF();
        PeriodoJpaController controlador = new PeriodoJpaController(emf);
        return controlador.findPeriodo(id);
    }
    
    public List<Periodo> mostrarTodo()
    {
        EntityManagerFactory emf = conexion.getInstancia().getEMF();
        PeriodoJpaController controlador = new PeriodoJpaController(emf);
        return controlador.findPeriodoEntities();
    }
    public List<Periodo> mostrarTodoFalse()
    {
        EntityManagerFactory emf = conexion.getInstancia().getEMF();
        EntityManager em = emf.createEntityManager();
        Query qr;
        qr = em.createNamedQuery("Periodo.findByAnulado");
        qr.setParameter("anulado", false);
        List<Periodo> lista = qr.getResultList();
        return lista;
    }
    public List<Periodo> mostrarTodoTrue()
    {
        EntityManagerFactory emf = conexion.getInstancia().getEMF();
        EntityManager em = emf.createEntityManager();
        Query qr;
        qr = em.createNamedQuery("Periodo.findByAnulado");
        qr.setParameter("anulado", true);
        List<Periodo> lista = qr.getResultList();
        return lista;
    }
    
    public String toString(int id)
    {
        Periodo periodo = this.buscarId(id);
        return periodo.toString();
    }
}
